<?php

class SlideShow extends CI_Controller {
	private $image;
	
	function SlideShow() {
		parent::__construct();
		$this->load->model('be/slideshow_model','model');
		$this->load->library ( 'form_validation' );
		$this->load->helper ( array ('form', 'url' ) );
	}	
	
	function index() {
		$this->list_all();
	}
	
	
	function list_all() {
		$banners = $this->model->get();
		$data['banners'] = $banners;
		
		$data['page_title'] = "Quản trị slideshow";
		$data['main_content'] = 'be/slideshow/list';
		$this->load->view('be/includes/template', $data);
	}
		
	function delete() {
		$ids = $this->input->post('selected');
		foreach ($ids as $id){
			$this->model->delete($id);
		}
		redirect(site_url('slideshow'));
	}
	
	function detail($id) {
		$pages = $this->model->get($id);
		$data['pages'] = $pages;
		
		$data['page_title'] = "Trang thông tin hệ thống";
		$data['main_content'] = 'be/slideshow/detail';
		$this->load->view('be/includes/template', $data);
	}
	
	
	public function add() {
		$this->form_validation->set_rules ( 'link', 'Đường dẫn', 'required' );
		$this->form_validation->set_rules ( 'image', 'Ảnh quảng cáo', 'callback_get_image_uploaded' );
		$this->form_validation->set_rules ( 'status', 'Trạng thái' );
		
		if ($this->form_validation->run () == FALSE) {
			$data ['page_title'] = 'Thêm mới slideshow';
			$data ['main_content'] = 'be/slideshow/add';
			$this->load->view ( 'be/includes/template', $data );
		} 
		else {
			$data['link'] = $this->input->post('link');
			$data ['status'] = $this->input->post ( 'status' );
			$data['image'] = $this->image;
			
			if (! $this->model->add ( $data )) {
				$data ['page_title'] = 'Có lỗi xảy ra';
				$mess_detail = '<p>Hãy kiểm tra lại thông tin bạn đã điền vào form!</p>';
				$mess_detail .= '<p><a href="' . base_url () . 'index.php/slideshow/add"> Làm lại</a> hoặc <a href="' . base_url () . 'index.php/slideshow">Trở lại trang danh sách</a></p>';
				$data ['message_detail'] = $mess_detail;
			} else {
				$data ['page_title'] = 'Thành công';
				$mess_detail = '<p>Thêm ảnh thành công!</p>';
				$mess_detail .= '<p><a href="' . base_url () . 'index.php/slideshow/add"> Làm lại</a> hoặc <a href="' . base_url () . 'index.php/slideshow">Trở lại trang danh sách</a></p>';
				$data ['message_detail'] = $mess_detail;
			}
			$data ['main_content'] = 'be/message';
			$this->load->view ( 'be/includes/template', $data );
		}
	}
	
	function update($id) {		
		
		$banner = $this->model->get($id);
				
		$data['id'] = $id;
		$data ['link'] = $banner->link;
		$data ['status'] = $banner->status;
		$data['image'] = $banner->image; 
		
		$this->form_validation->set_rules ( 'link', 'Đường dẫn', 'required' );
		$this->form_validation->set_rules ( 'status', 'Trạng thái' );
		$this->form_validation->set_rules ( 'avatar', 'Hình ảnh', 'callback_get_image_uploaded' );	
		
		if ($this->form_validation->run () == FALSE) {
			$data ['page_title'] = 'Cập nhật slideshow';
			$data ['main_content'] = 'be/slideshow/update';
			$this->load->view ( 'be/includes/template', $data );
		} else {
			$data ['link'] = $this->input->post ( 'link' );
			$data ['status'] = $this->input->post ( 'status' );
			$data['id'] = $id;
			
			if($this->image == SLIDESHOW_DEFAULT_AVATAR ) {
				$data ['image'] = $banner->image;
			}else {
				$data['image'] = $this->image;
			}					
			if (! $this->model->update ($id, $data )) {
				$data ['page_title'] = 'Có lỗi xảy ra';
				$mess_detail = '<p>Hãy kiểm tra lại thông tin bạn đã điền vào form!</p>';
				$mess_detail .= '<p><a href="' . base_url () . 'index.php/slideshow/update"> Làm lại</a> hoặc <a href="' . base_url () . 'index.php/slideshow">Trở lại trang danh sách</a></p>';
				$data ['message_detail'] = $mess_detail;
			} else {
				$data ['page_title'] = 'Thành công';
				$mess_detail = '<p>Cập nhật thành công!</p>';
				$mess_detail .= '<p><a href="' . base_url () . 'index.php/slideshow/update">Tiếp tục</a> hoặc <a href="' . base_url () . 'index.php/slideshow">Trở lại trang danh sách</a>';
				$data ['message_detail'] = $mess_detail;
			}
			$data ['main_content'] = 'be/message';
			$this->load->view ( 'be/includes/template', $data );
		}
	}
	
	function get_image_uploaded() {
		//Create location if it does not exist
		$location = DEFAULT_IMAGE_UPLOAD_PATH . '/slideshow';
		if (! is_dir ( $location )) {
			if (! mkdir ( $location, 0755 )) {
				die ( 'Failed to create folders...' );
			}
		}
		$config ['upload_path'] = $location;
		$config ['allowed_types'] = 'gif|jpg|png|bmp|jpeg';
		$config ['max_size'] = '10000';
		
		$this->load->library ( 'upload', $config );
		if ($this->upload->do_upload ( 'image' )) {
			$tmp = $this->upload->data ( 'image' );
			$this->image = $location . '/' . $tmp ['file_name'];
		} else {
			$this->image =  SLIDESHOW_DEFAULT_AVATAR;
		}
	}
}